#include <stdio.h>

typedef struct
{
	int n;
	int m;
}Line;

static Line lines[10000];

long long jieCheng(const int n)
{
	long long ret = 1;
	for ( int i = 2; i <= n; i++ ) {
		ret *= i;
	}
	return ret;
}

long long Cnm(const int n, const int m)
{
	long long ret = 1;
	if ( m == 0 ) {
		return 1;
	}
	for ( int i = n - m + 1; i <= n; i++ ) {
		ret *= i;
	}
	
	ret = ret / jieCheng(m);
	return ret;
}

int GetCount(int n, int m, int k)
{
	int cnt = 0;
	for ( int i = 0; i <= n; i++ ) {
		int min = i < m ? i : m;
		for ( int j = 0; j <= min; j++ ) {
			if ( Cnm(i, j) % k == 0 ) {
				cnt ++;
			}
		}
	}
	return cnt;
}

int main()
{
	// long long a = jieCheng(2000);
	long long a = jieCheng(20);
	printf("%lld", a);
	/*
	freopen("problem.in",  "r", stdin);
	freopen("problem.out", "w", stdout);
	int t = 0, k = 0;
	scanf("%d %d", &t, &k);
	for ( int i = 0; i < t; i++ ) {
		scanf("%d %d", &lines[i].n, &lines[i].m);
	}
	
	for ( int i = 0; i < t; i++ ) {
		int cnt = GetCount(lines[i].n, lines[i].m, k);
		printf("%d\n", cnt);
	}
	fclose(stdin);
	fclose(stdout);
	*/
	return 0;
}
